using System;
using System.Collections.Generic;
using System.Text;

namespace GPU_NN
{
    public class Link
    {
        /// <summary>
        /// Primary constructor used to initialize the links
        /// </summary>
        public Link()
        {
            m_nTargetBranchID = -1;
            m_fweight = -1;
        }

        /// <summary>
        /// Function Description: The method is used to set up the links target
        ///         node.  this is how the NN is traversed. 
        /// 
        /// Original Structure By: Christopher Dlugolinski	Date: June 12, 2007
        /// 
        /// Edited By:										Date:
        /// Reason For Editing:
        /// </summary>
        public void SetLinkTargetID(int id)
        {
            m_nTargetBranchID = id;
        }

        /// <summary>
        /// Function Description: This method is called to set the link weight 
        ///         of the link cause each link from a node has a different 
        ///         weight depending on what is read in from the xml file
        /// 
        /// Original Structure By: Christopher Dlugolinski	Date: June 12, 2007
        /// 
        /// Edited By:										Date:
        /// Reason For Editing:
        /// </summary>
        public void SetLinkWeight(double weight)
        {
            m_fweight = weight;
        }

        /// <summary>
        /// Function Description: This method is called to return the target of 
        ///         the link in question
        /// 
        /// Original Structure By: Christopher Dlugolinski	Date: June 12, 2007
        /// 
        /// Edited By:										Date:
        /// Reason For Editing:
        /// </summary>
        public int GetLinkTargetID()
        {
            return m_nTargetBranchID;
        }

        /// <summary>
        /// Function Description: This method is used to get the weight of the 
        ///         link in use
        /// 
        /// Original Structure By: Christopher Dlugolinski	Date: June 12, 2007
        /// 
        /// Edited By:										Date:
        /// Reason For Editing:
        /// </summary>
        public double GetLinkWeight()
        {
            return m_fweight;
        }
	    
        /// <summary>
        /// Targeted branch of the link in use
        /// </summary>
        int m_nTargetBranchID;

        /// <summary>
        /// The weight of this particular link
        /// </summary>
	    double m_fweight;
    }
}
